home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / rpg / crossfir.92 / crossfir / crossfire-0.92.5 / include / skills.h < prev    next >
C/C++ Source or Header  |  1996-07-24  |  6KB  |  133 lines

  1. /*
  2.  * static char *rcsid_skills_h =
  3.  *   "$Id: skills.h,v 1.5 1996/03/04 10:01:10 master Exp $";
  4.  */
  5.  
  6. /*
  7.     CrossFire, A Multiplayer game for X-windows
  8.  
  9.     Copyright (C) 1994 Mark Wedel
  10.     Copyright (C) 1992 Frank Tore Johansen
  11.  
  12.     This program is free software; you can redistribute it and/or modify
  13.     it under the terms of the GNU General Public License as published by
  14.     the Free Software Foundation; either version 2 of the License, or
  15.     (at your option) any later version.
  16.  
  17.     This program is distributed in the hope that it will be useful,
  18.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.     GNU General Public License for more details.
  21.  
  22.     You should have received a copy of the GNU General Public License
  23.     along with this program; if not, write to the Free Software
  24.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  25.  
  26.     The author can be reached via e-mail to master@rahul.net
  27. */
  28.  
  29. /*
  30.  * First written 6 Sep 1994, Nick Williams (njw@cs.city.ac.uk)
  31.  *
  32.  * Initially, I was going to do this as spells, but there is so much
  33.  * crap associated with spells (using sp, time to cast, might happen
  34.  * as WONDER, etc) that I decided it was time to implement skills.  A
  35.  * skill at the moment is merely a "flag" which is placed into the
  36.  * player. The idea is that it will develop into having a rating,
  37.  * which can be improved by practice.  A player could potentially
  38.  * "learn" any number of skills, however this would be dependent on
  39.  * their intelligence.  Perhaps skills should also record when they
  40.  * were learnt, and their "rating" should decay as time goes by,
  41.  * making characters have to either practice their skills, or re-learn
  42.  * them.  BTW: Some skills should be dependent on having
  43.  * tools... e.g. lockpicking would work much better if the player is
  44.  * using a lockpick.
  45.  */
  46.  
  47. /* Modification March 3 1995 - skills are expanded from stealing to
  48.  * include another 14 skills. + skill code generalized. Some player
  49.  * classes now may start with skills. -b.t. (thomas@nomad.astro.psu.edu) 
  50.  */
  51.  
  52. /* Modification April 21 1995 - more skills added, detect magic - detect
  53.  * curse to woodsman - b.t. (thomas@nomad.astro.psu.edu)
  54.  */ 
  55.  
  56. /* Modification May/June 1995 - 
  57.  *  HTH skills to allow hitting while moving. 
  58.  *  Modified the bargaining skill to allow incremental CHA increase (based on level)
  59.  *  Added the inscription skill, finished play-testing meditation skill.
  60.  *  - b.t. (thomas@astro.psu.edu)
  61.  */ 
  62.  
  63. /* Modification June/July 1995 - 
  64.  *  1- Expansion of the skills code to fit within a scheme of multiple categories 
  65.  *  of experience. Henceforth, 2 categories of skills will exist: "associated"
  66.  *  skills which are associated with one of the categories of experience, and
  67.  *  "miscellaneous" skills, which are not related to any experience category.
  68.  *  2- Moved the attacking and spellcasting player activities into skills. 
  69.  *  Now have "hand weapons" "missile weapons" "throwing" and "spellcasting". 
  70.  *  see doc/??? for details on this system.
  71.  *  - b.t.  
  72.  */
  73.  
  74. /* define this if you want to have player skills stored for 
  75.  * faster access from a linked list. If skill tools are heavily used
  76.  * calls to malloc from this code can actually make performance worse. 
  77.  * -b.t. */
  78.  
  79. /* #define LINKED_SKILL_LIST */
  80.  
  81. enum skillnrs { 
  82.     /* 0 */
  83.     SK_STEALING,        /* steal from other players/NPCs */
  84.     SK_LOCKPICKING,        /* open doors without having to bash them */
  85.     SK_HIDING,             /* player can hide from monsters */
  86.     SK_SMITH,            /* can auto-ident arms/armour */
  87.     SK_BOWYER,            /* can auto-ident bows/x-bow/arrows/bolts */
  88.     /* 5 */
  89.     SK_JEWELER,            /* can auto-identify gems */
  90.     SK_ALCHEMY,            /* can auto-identify potions/amulets/containers */
  91.     SK_THAUMATURGY,        /* can auto-identify staffs/rods/wands */
  92.     SK_LITERACY,        /* can auto-identify scrolls/books */
  93.     SK_BARGAINING,        /* sells equip at Cha + level-based bonus (30 max) */
  94.     /* 10 */
  95.     SK_JUMPING,         /* player may 'hop' over 1-2 spaces */ 
  96.     SK_DET_MAGIC,         /* player may sense magic in handled items */ 
  97.     SK_ORATORY,            /* player may charm unaggressive monsters */ 
  98.     SK_MUSIC,             /* Player may pacify hostile monsters once */ 
  99.     SK_DET_CURSE,         /* player may sense cursed items in inventory */ 
  100.     /* 15 */
  101.     SK_FIND_TRAPS,        /* player can find traps better */ 
  102.     SK_MEDITATION,        /* player can regain sp/hp at a faster rate */ 
  103.     SK_BOXING,            /* can attack hand-to-hand, see attack_hth() */ 
  104.     SK_FLAME_TOUCH,        /* player attack for fireborn characters */ 
  105.     SK_KARATE,            /* can attack hand-to-hand, see attack_hth() */ 
  106.     /* 20 */
  107.     SK_CLIMBING,        /* player moves quickly over hills/mountains  */ 
  108.     SK_WOODSMAN,        /* player moves quickly through jungle/forest */ 
  109.     SK_INSCRIPTION,         /* player may write spell scrolls */ 
  110.     SK_MELEE_WEAPON,        /* player can attack with melee weapons */ 
  111.     SK_MISSILE_WEAPON,        /* player can attack with missile weapons */ 
  112.     /* 25 */
  113.     SK_THROWING,        /* player can throw items */ 
  114.     SK_SPELL_CASTING,        /* player can cast magic spells */ 
  115.     SK_REMOVE_TRAP,         /* player can disarm traps */ 
  116.     SK_SET_TRAP,         /* player can set traps - not implemented */ 
  117.     SK_USE_MAGIC_ITEM,         /* player use wands/horns/rods */ 
  118.     /* 30 */
  119.     SK_PRAYING,            /* player can cast cleric spells, regen grace points */ 
  120.     SK_CLAWING            /* player attack for troll, dragon characters */ 
  121.  
  122. /* Here follows a list of others which could be implemented, but are
  123.  * not */
  124. #if 0
  125.     SK_ARCHERY,            /* extra skill at using bows */
  126.     SK_SWORDSMANSHIP,        /* extra skill with swords */
  127.     SK_HERBLORE,        /* can auto-identify herbs,spell components */
  128. #endif
  129. };
  130.  
  131. extern skill skills[];
  132.  
  133.